package helloword;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import org.junit.Test;
import utils.RabbitMQUtils;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

/**
 * @author lucine
 * @version 1.0 2021/6/17 16:09
 */
public class Provider {


    /**
     * 生产消息
     */
    @Test
    public void testSendMessage() throws Exception{


//        //创建连接mq的连接工厂对象
//        ConnectionFactory connectionFactory = new ConnectionFactory();
//        //设置连接rabbitmq主机
//        connectionFactory.setHost("127.0.0.1");
//        //设置端口号
//        connectionFactory.setPort(5672);
//        //设置连接的虚拟主机
//        connectionFactory.setVirtualHost("/ems");
//        //设置访问虚拟主机的用户名
//        connectionFactory.setUsername("ems");
//        //设置访问虚拟主机的密码
//        connectionFactory.setPassword("ems");
//
//        //获取连接对象
//        Connection connection = connectionFactory.newConnection();
        Connection connection = RabbitMQUtils.getConnection();
        //通道绑定对应消息队列
        Channel channel = connection.createChannel();
        //通道绑定对应消息队列
        //参数1：队列名称,如果队列不存在自动创建
        //参数2：用来定义队列特性是否持久化 true 持久化队列 false 不持久化  ，false的话下次启动就会消失
        //参数3：exclusive 是否独占队列  true 独占 false 不独占
        //参数4：autoDelete 是否在消费完成或删除队列 true自动删除
        //参数5：附加额外参数
        channel.queueDeclare("hello",false,false,false,null);

        //发布消息
        channel.basicPublish("","hello",null,"hello body message ".getBytes());
        RabbitMQUtils.cloneConnectionAndChannel(channel,connection);
//        channel.close();
//        connection.close();

    }
}
